home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / pascal / o_gem / doku / clipview.txt next >
Encoding:
Text File  |  1994-09-22  |  6.1 KB  |  143 lines

  1. "ClipView" (Version 30.08.1994)
  2. ===============================
  3.  
  4. Dieses Programm ist FREEWARE, d.h. es darf und soll weitergegeben und
  5. benutzt werden. Die Weitergabe ist gestattet, sofern die Dateien
  6. CLIPVIEW.APP, CLIPVIEW.TXT (diese Datei) und CLIPVIEW.PAS zusammen
  7. und unverändert weitergegeben werden. Wird das Programm in PD-Serien
  8. aufgenommen, auf CDs gepreßt etc., möge man sich doch bitte um die
  9. aktuellste Version kümmern.
  10.  
  11. Meine Adresse: Thomas Much, Gerwigstraße 46, 76131 Karlsruhe
  12.                Tel. (0721) 62 28 41
  13.                EMail: Thomas Much @ KA2
  14.                       UK48@ibm3090.rz.uni-karlsruhe.de
  15.  
  16. CLIPVIEW.ZIP sollte auf jeden Fall in den Mäusen KA und HL zu finden
  17. sein (Achtung: Kein Gastdownload von 18-21.45 Uhr).
  18.  
  19.  
  20. Wozu ist ClipView gut?
  21. ----------------------
  22. ClipView ist "nur" ein Testprogramm für die neue Scrap-Message
  23. SC_CHANGED (Definitionen s.u.) und das Menü-Protokoll. Von letzterem
  24. werden z.Z. nur WM_PRINT und WM_PASTE ausgewertet.
  25.  
  26.  
  27. Installation und Anwendung
  28. --------------------------
  29. ClipView kann sowohl als Programm als auch als Accessory eingesetzt
  30. werden. Unter alten TOS-Versionen sollte man dem Accessory den Vorzug
  31. geben, unter Multitasking-Systemem ist der Programmtyp im Prinzip
  32. egal.
  33. Wenn ein Programm den Inhalt des Klemmbretts ändert und alle Appli-
  34. kationen im System per SC_CHANGED benachrichtigt, zeigt ClipView den
  35. neuen Inhalt sofort an - sofern es sich um eine Text-Datei handelt.
  36. Außerdem kann ClipView mit dem Menü-Protokoll "ferngesteuert" werden,
  37. d.h. statt <Control>+<P> zu drücken, kann z.B. eine Shell auch die
  38. Message WM_PRINT schicken.
  39.  
  40.  
  41. Was man sonst noch über ClipView wissen sollte
  42. ----------------------------------------------
  43. Wie man vielleicht am beiliegenden Quelltext erkennt, ist ClipView
  44. ein ObjectGEM-Programm. Zur Programmierung wurde die neue ObjectGEM-
  45. Version 1.17 verwendet.
  46.  
  47. Schließlich muß ich noch darauf hinweisen, daß ClipView bei mir zwar
  48. wunderbar läuft, daß ich dies aber nicht garantieren kann. Wer ClipView
  49. einsetzt, tut dies AUF EIGENE GEFAHR. Sollte tatsächlich ein Fehler
  50. auftreten und ich davon erfahren, werde ich diesen nach Möglichkeit
  51. eliminieren.
  52.  
  53.  
  54. Definition von SC_CHANGED
  55. -------------------------
  56. Die GEM-Message SC_CHANGED sollte von einer Applikation an alle anderen im
  57. System erreichbaren Applikationen verschickt werden, /nachdem/ am Klemmbrett
  58. Änderungen vorgenommen wurden. Unter alten TOS-Versionen kann dafür z.B. ein
  59. geeignetes Protokoll (XAcc/AV) verwendet werden, unter MultiTOS und kompa-
  60. tiblen Betriebssystemen appl_search oder (besser) ein AES-Broadcast per
  61. shel_write(7,...). Die Nachricht ist wie folgt aufgebaut:
  62.  
  63.     msg[0] = SC_CHANGED $0050 (80)
  64.     msg[1] = apID
  65.     msg[2] = 0
  66.     msg[3] = Bitmap des Dateiformats (s.u.)
  67.     msg[4]   4 Zeichen für die "beste" der abgespeicherten Dateien
  68.         +  =  (z.B. ".RTF"), damit beim Lesen möglichst wenig
  69.     msg[5]    Information verloren geht
  70.     msg[6]
  71.         +  = reserviert, /auf Null setzen!/
  72.     msg[7]
  73.  
  74. Folgende Konstanten charakterisieren das Dateiformat. Nur wenn die ge-
  75. speicherten Daten auch im entferntesten nicht in eine der Kategorien
  76. passen, sollte SCF_INDEF übergeben werden.
  77.  
  78.     SCF_INDEF  = $0000;
  79.     SCF_DBASE  = $0001;  Daten, die in eine Datenbank geladen werden können
  80.                          (".DBF", ".CSV", ...)
  81.     SCF_TEXT   = $0002;  Textdateien
  82.                          (".TXT", ".ASC", ".RTF", ".DOC", ...)
  83.     SCF_VECTOR = $0004;  Vektorgrafik
  84.                          (".GEM", ".EPS", ".CVG", ".DXF", ...)
  85.     SCF_RASTER = $0008;  Rastergrafik
  86.                          (".IMG", ".TIF", ".GIF", ".PCX", ".IFF", ...)
  87.     SCF_SHEET  = $0010;  Tabellenkalkulation
  88.                          (".DIF", ".WKS", ...)
  89.     SCF_SOUND  = $0020;  Samples, MIDI-Files, Klänge, ...
  90.                          (".MOD", ".SND", ...)
  91.  
  92. Durch Auswertung der Bitmap brauchen nur die Applikationen, die evtl.
  93. Verwendung für solche Daten haben, im Klemmbrett nachschauen.
  94. Wenn "kombinierte" Dateiformate gespeichert werden (z.B. Raster- und Vektor-
  95. grafik in einer Datei), muß entsprechend mehr als ein Flag gesetzt werden.
  96. Eine Anwort auf SC_CHANGED wird *nicht* erwartet.
  97.  
  98.  
  99. Vorläufige Definition des Menü-Protokolls
  100. -----------------------------------------
  101. In letzter Zeit wurde viel darüber diskutiert, welche Shortcuts welchen
  102. Aktionen zuzuordnen sind (bzw. wie dies am besten geschieht). Dabei fehlt
  103. aber offensichtlich noch die Möglichkeit, fremde Fenster mit vorhandenen
  104. Menüeinträgen "fernzusteuern". Praktisch jedes Programm hat einen Menü-
  105. eintrag "Schließen", worauf man an *jedes* oberste Fenster eine WM_CLOSED-
  106. Message schicken kann. Wie aber soll das z.B. bei Cut/Copy/Paste
  107. funktionieren?
  108.  
  109. Dafür hier nun ein Vorschlag für *neue* Messages, die aus jedem Programm
  110. eine kleine Shell (z.B. für Accessories) machen können (intern wird dann also
  111. keine Routine direkt aufgerufen, sondern immer nur eine entsprechende Message
  112. an das oberste Fenster geschickt):
  113.  
  114.     _Menüeintrag_  _(Shortcut)_  _Nachricht_   _Nummer_
  115.  
  116.    (Schließen        ^U      WM_CLOSED       22  $0016)
  117.    (Volle Größe      ^#*     WM_FULLED       23  $0017)
  118.     Sichern          ^S      WM_SAVE       4096  $1000
  119.     Sichern als      ^M      WM_SAVEAS     4097  $1001
  120.     Drucken          ^P      WM_PRINT      4098  $1002
  121.     Undo             Undo    WM_UNDO       4099  $1003
  122.     Ausschneiden     ^X      WM_CUT        4100  $1004
  123.     Kopieren         ^C      WM_COPY       4101  $1005
  124.     Einfügen         ^V      WM_PASTE      4102  $1006
  125.     Löschen          Del     WM_DELETE     4108  $100c
  126.     Alles auswählen  ^A      WM_SELECTALL  4103  $1007
  127.     Suchen           ^F      WM_FIND       4104  $1008
  128.     Ersetzen         ^R      WM_REPLACE    4105  $1009
  129.     Weitersuchen     ^G      WM_FINDNEXT   4106  $100a
  130.     Hilfe            Help    WM_HELP       4107  $100b
  131.  
  132. Die Shortcuts haben _nichts_ mit dem Protokoll zu tun, sie sind hier
  133. nur zur Information noch einmal aufgelistet.
  134.  
  135.  
  136.  
  137. Release-History
  138. ---------------
  139. 30.08.94
  140. - SC_CHANGED hat nun "offiziell" die Message-Nummer 80
  141. 19.07.94
  142. - erste öffentliche Version
  143.